package com.cskaoyan.service;

import com.cskaoyan.bean.BasePageData;
import com.cskaoyan.bean.BaseParam;
import com.cskaoyan.bean.OrderGoods;
import com.cskaoyan.bean.admin.vo.OrderDetailVO;
import com.cskaoyan.bean.admin.vo.OrderReqVO;
import com.cskaoyan.bean.wx.vo.OrderCommentVO;
import com.cskaoyan.bean.wx.vo.OrderDetailWxVO;
import com.cskaoyan.bean.wx.vo.OrderSubmitInfoVO;
import com.cskaoyan.bean.wx.vo.OrderSubmitVO;

import java.math.BigDecimal;

/**
 * @author Jcy
 */
public interface OrderService {
    BasePageData list(OrderReqVO orderReq);

    OrderDetailVO detail(Integer id);

    int delete(Integer orderId);

    void refund(Integer orderId, BigDecimal refundMoney);

    void ship(Integer orderId, String shipChannel, String shipSn);

    BasePageData listWx(BaseParam param, Short showType);

    OrderDetailWxVO detailWx(Integer orderId);

    void cancel(Integer orderId);

    void refundWx(Integer orderId);

    void confirm(Integer orderId);

    void deleteWx(Integer orderId);

    OrderGoods goods(Integer orderId, Integer goodsId);

    void comment(OrderCommentVO orderCommentVO);

    int prepay(Integer orderId);

    OrderSubmitVO submit(OrderSubmitInfoVO submitInfoVO);

    Integer countUncommentByUserId(Integer userId);

    Integer countUnpaidByUserId(Integer userId);

    Integer countUnrecvByUserId(Integer userId);

    Integer countUnshipByUserId(Integer userId);

}
